﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
using QLTuyenXe.DAL;
using QLTuyenXe.DAO;
using QLTuyenXe.library;

namespace QLTuyenXe.BLL
{
    class BDoanhThu
    {
        XuLyDL xl = new XuLyDL();
        MyConnectUnit myConnU = new MyConnectUnit();
        //Đọc dữ liệu từ bảng
        public ArrayList Select(String columns, String condition, String order)
        {
            ArrayList doanhThus = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("DOANH_THU", "QUAN_LY_XE", "DIEU_HANH", "TUYEN_XE", "DOANH_THU.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "DIEU_HANH.matuyenxe", "TUYEN_XE.matuyenxe");
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    DOANHTHU_DIEUHANH_TUYENXE obj = new DOANHTHU_DIEUHANH_TUYENXE();
                    obj.MaDT = r["maDT"].ToString();
                    obj.Ngay = r["ngay"].ToString();
                    obj.Thang = r["thang"].ToString();
                    obj.Nam = r["nam"].ToString();
                    obj.MaXe = r["maxe"].ToString();
                    obj.TenXe = r["tenxe"].ToString();
                    obj.BienSo = r["bienso"].ToString();
                    obj.SoGhe = r["soghe"].ToString();
                    obj.TenTuyen = r["tentuyen"].ToString();
                    obj.Lan1 = r["lan1"].ToString();
                    obj.Lan2 = r["lan2"].ToString();
                    obj.GiaVe = r["giave"].ToString();
                    doanhThus.Add(obj);
                }
            }
            return doanhThus;
        }

//=================================================================================================================================================================================================================
        //Hàm để hiển thị dữ liệu lên gatagriview khi load form (Mr.Tuyên)
        // k can trang thái, cai nay chi là load daonh thu da dc them vao truoc do
        public ArrayList Select_DT()
        {
            ArrayList doanhThus = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.Select("DOANH_THU", "QUAN_LY_XE", "DIEU_HANH", "TUYEN_XE", "DOANH_THU.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "DIEU_HANH.matuyenxe", "TUYEN_XE.matuyenxe");
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    DOANHTHU_DIEUHANH_TUYENXE obj = new DOANHTHU_DIEUHANH_TUYENXE();
                    obj.MaDT = r["maDT"].ToString();
                    obj.Ngay = r["ngay"].ToString();
                    obj.Thang = r["thang"].ToString();
                    obj.Nam = r["nam"].ToString();
                    obj.MaXe = r["maxe"].ToString();
                    obj.TenXe = r["tenxe"].ToString();
                    obj.BienSo = r["bienso"].ToString();
                    obj.SoGhe = r["soghe"].ToString();
                    obj.TenTuyen = r["tentuyen"].ToString();
                    obj.Lan1 = r["lan1"].ToString();
                    obj.Lan2 = r["lan2"].ToString();
                    obj.GiaVe = r["giave"].ToString();
                    doanhThus.Add(obj);
                }
            }
            return doanhThus;
        }
        //end (Mr.Tuyên)
//======================================================================================
        //=================================================================================================================================================================================================================
        //Hàm để hiển thị dữ liệu lên gatagriview khi load form (Mr.Tuyên)
        // k can trang thái, cai nay chi là load daonh thu da dc them vao truoc do
        public ArrayList Select_TKDT(string dk1, string dk2)
        {
            ArrayList doanhThus = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.SelectTK_DT("DOANH_THU", "QUAN_LY_XE", "DIEU_HANH", "TUYEN_XE", "DOANH_THU.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "DIEU_HANH.matuyenxe", "TUYEN_XE.matuyenxe",dk1 , dk2);
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    DOANHTHU_DIEUHANH_TUYENXE obj = new DOANHTHU_DIEUHANH_TUYENXE();
                    obj.MaDT = r["maDT"].ToString();
                    obj.Ngay = r["ngay"].ToString();
                    obj.Thang = r["thang"].ToString();
                    obj.Nam = r["nam"].ToString();
                    obj.MaXe = r["maxe"].ToString();
                    obj.TenXe = r["tenxe"].ToString();
                    obj.BienSo = r["bienso"].ToString();
                    obj.SoGhe = r["soghe"].ToString();
                    obj.TenTuyen = r["tentuyen"].ToString();
                    obj.Lan1 = r["lan1"].ToString();
                    obj.Lan2 = r["lan2"].ToString();
                    obj.GiaVe = r["giave"].ToString();
                    doanhThus.Add(obj);
                }
            }
            return doanhThus;
        }
        //end (Mr.Tuyên)
        //======================================================================================

//========================================================================================
        //load len combox tenxe vaf max xe
        public DataTable Select_DTMaXe_TenXe()
        {
            DataTable tb = new DataTable();
            tb = myConnU.Select_MT("DOANH_THU", "QUAN_LY_XE", "DIEU_HANH", "TUYEN_XE","DOANH_THU.maxe", "tenxe","DOANH_THU.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "DIEU_HANH.matuyenxe", "TUYEN_XE.matuyenxe");
            return tb;
         }

        //end(Mr.Tuyen)
//========================================================================================



//==================================
        //load len lưới khi combox thang thay doi
        public ArrayList Select_DTThang(string thang)
        {
            ArrayList doanhThus = new ArrayList();
            DataTable tb = new DataTable();
            tb = myConnU.SelectThangDT("DOANH_THU", "QUAN_LY_XE", "DIEU_HANH", "TUYEN_XE", "DOANH_THU.maxe", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "DIEU_HANH.matuyenxe", "TUYEN_XE.matuyenxe", "thang='"+ thang +"'");
            if (tb != null)
            {
                foreach (DataRow r in tb.Rows)
                {
                    DOANHTHU_DIEUHANH_TUYENXE obj = new DOANHTHU_DIEUHANH_TUYENXE();
                    obj.MaDT = r["maDT"].ToString();
                    obj.Ngay = r["ngay"].ToString();
                    obj.Thang = r["thang"].ToString();
                    obj.Nam = r["nam"].ToString();
                    obj.MaXe = r["maxe"].ToString();
                    obj.TenXe = r["tenxe"].ToString();
                    obj.BienSo = r["bienso"].ToString();
                    obj.SoGhe = r["soghe"].ToString();
                    obj.TenTuyen = r["tentuyen"].ToString();
                    obj.Lan1 = r["lan1"].ToString();
                    obj.Lan2 = r["lan2"].ToString();
                    obj.GiaVe = r["giave"].ToString();
                    doanhThus.Add(obj);
                }
            }
            return doanhThus;
        }
        //end
//====================================

//=============================================================================================
        //Hàm load lên combobox  mã xe + ten xe/trangthai chạy tuyến (Mr.Tuyên K_54HTTT)
        public DataTable Select_TrangThai()
        {
     
            DataTable tb = new DataTable();
            tb = myConnU.Select("QUAN_LY_XE", "DIEU_HANH", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "trangthai=N'chạy tuyến'");
            return tb;
        }
        //End (Mr.Tuyên)
//==============================================================================================
//=============================================================================================
        //Kiem tra xe do da them vao hay chua (Mr.Tuyên K_54HTTT)
        public DataTable SelectKTXe( string maxe, string ngay, string thang)
        {
   
            DataTable tb = new DataTable();
            tb = myConnU.Select_KiemtraDT("DOANH_THU", "maxe='"+ maxe +"'","ngay='"+ ngay +"'", "thang='"+ thang +"'" );
            return tb;
        }
        //End (Mr.Tuyên)
 //==============================================================================================

//===================================================
    //load lên combobox tháng
        public DataTable SelectThang ()
        {

            DataTable tb = new DataTable();
            tb = myConnU.Select("DOANH_THU","thang");
            return tb;
        }

        //end
//======================================================


//=========================================================================================
        //Hàm load dữ liệu lên combox số ghe, tuyen xe thoe ma xe (Mr.Tuyên K_54HTTT)
        public DataTable Select_SoGhe(String dk)
        {
            DataTable tb = new DataTable();
            tb = myConnU.Select_DoanhThu("QUAN_LY_XE", "DIEU_HANH", "TUYEN_XE", "bienso", "soghe", "tentuyen", "QUAN_LY_XE.maxe", "DIEU_HANH.maxe", "DIEU_HANH.matuyenxe", "TUYEN_XE.matuyenxe", "trangthai=N'chạy tuyến'", "QUAN_LY_XE.maxe='" + dk + "'");
            return tb;
        }
        //End  (Mr.Tuyên K_HTTT)
//=========================================================================================

        //Đọc dữ liệu từ bảng Doanh Thu trong CSDL
       // public ArrayList Select(String columns, String condition)
        //{
           // return this.Select(columns, condition, null);
       // }
        //Cái này co vẻ thừa
       // public ArrayList Select(String columns)
        //{
            //return this.Select(columns, null);
        //}

        //public ArrayList Select()
        //{
           // return this.Select("*");
        //}
        //Thêm 1 chức vụ mới
        public int Insert(DOANHTHU doanhThu)
        {
            ColumnData maDT = new ColumnData("maDT", 1, doanhThu.MaDT.ToString());
            ColumnData maxe = new ColumnData("maxe", 1, doanhThu.Maxe.ToString());
            ColumnData ngay = new ColumnData("ngay", 1, doanhThu.Ngay.ToString());
            ColumnData thang = new ColumnData("thang", 1, doanhThu.Thang.ToString());
            ColumnData nam = new ColumnData("nam", 1,doanhThu.Nam.ToString());
            ColumnData lan1 = new ColumnData("lan1", 1, doanhThu.Lan1.ToString());
            ColumnData lan2 = new ColumnData("lan2", 1, doanhThu.Lan2.ToString());
            ArrayList ob = new ArrayList();
            ob.Add(maDT);
            ob.Add(maxe);
            ob.Add(ngay);
            ob.Add(thang);
            ob.Add(nam);
            ob.Add(lan1);
            ob.Add(lan2);
            return myConnU.Insert("DOANH_THU", ob);
        }
        //Them vao 1 danh sach
        public int Insert(ArrayList doanhThus)
        {
            int count = 0;
            foreach (DOANHTHU cv in doanhThus)
            {
                count += this.Insert(cv);
            }
            return count;
        }
        //Cap nhat thong tin cho 1 chu vu
        public int Update(DOANHTHU doanhThu, String condition)
        {
            ColumnData lan1 = new ColumnData("lan1", 2, doanhThu.Lan1.ToString());
            ColumnData lan2 = new ColumnData("lan2", 2, doanhThu.Lan2.ToString());
            ArrayList b = new ArrayList();
            b.Add(lan1);
            b.Add(lan2);
            return myConnU.Update("DOANH_THU", b, condition);
        }
        //Cap nhat 1 danh sach
        public int Update(ArrayList doanhThus, String condition)
        {
            int count = 0;
            foreach (DOANHTHU a in doanhThus)
            {
                count += this.Update(a, condition);
            }
            return count;
        }
        //Xoa chuc vu theo dieu kien
        public int Delete(String condition)
        {
            return myConnU.Delete("DOANH_THU", condition);
        }

    
   //=============================================================================================
        //Hàm lấy giá trị lơn nhất (Mr.Tuyên K_54HTTT)
        public String getOrder()
        {
            string strID = myConnU.GetTopDataCell("DOANH_THU", "maDT");
            string strID1;
            string strID2;
            strID1 = strID.Substring(0, 2);
            strID2 = strID.Substring(2, 5);
            int autoNum = Convert.ToInt32(strID2) + 1;

            if (autoNum < 10)
                return strID1 + "0000" + autoNum;

            else if (autoNum >= 10 && autoNum < 100)
                return strID1 + "000" + autoNum;

            else if (autoNum >= 100 && autoNum < 1000)
                return strID1 + "00" + autoNum;
            else if (autoNum >= 1000 && autoNum < 10000)
                return strID1 + "0" + autoNum;
            else if (autoNum >= 10000 && autoNum < 100000)
                return strID1 + "" + autoNum;

            else
                return "";
        }
        //End hàm lấy giá trị lưn nhất (Mr.Tuyên K_54HTTT)
  //============================================================================================= 
 
    }
}
